<?php
namespace App\Controllers;
class Travel extends BaseController
{
    public function index()
    {
        // connect to the model
        $places = new \App\Models\Places();
        // retrieve all the records
        $records = $places->findAll();

        $table = new \CodeIgniter\View\Table();
        $headings = $places->fields;
        $displayHeadings = array_slice($headings, 1, 2);
        $table->setHeading(array_map('ucfirst', $displayHeadings));
        foreach ($records as $record) {
            // $table->addRow($record->name,$record->description);
            $nameLink = anchor("travel/showme/$record->id",$record->name);
            $table->addRow($nameLink,$record->description);
        }
        
        $template = [
            'table_open' => '<table cellpadding="5px">',
            'cell_start' => '<td style="border: 1px solid #dddddd;">',
            'row_alt_start' => '<tr style="background-color:#dddddd">',
            ];
            $table->setTemplate($template);

        $fields = [
            'title' => 'Travel Destinations',
            'heading' => 'Travel Destinations',
            'footer' => 'Copyright 123'
        ];
  
        // get a template parser
        $parser = \Config\Services::parser();
        // // tell it about the substitions
        // return $parser->setData(['records' => $records])
        //     // and have it render the template with those
        //     ->render('placeslist');

        return $parser->setData($fields)
                ->render('templates\top') .
            $table->generate() .
            $parser->setData($fields)
                ->render('templates\bottom');

    }

    public function showme($id)
    {
        // connect to the model
        $places = new \App\Models\Places();
        // retrieve all the records
        $record = $places->find($id);

        $table = new \CodeIgniter\View\Table();
        $table->addRow('Id',$record['id']);
        $table->addRow('Name',$record['name']);
        $table->addRow('Description',$record['description']);
        $table->addRow('Link',$record['link']);
        $table->addRow('Image','<img src=\\image\\'.$record['image'].' width=100%>');
        
        $table->addRow('Edit',anchor('travel/edit/'.$id,"edit"));

        $template = [
            'table_open' => '<table cellpadding="5px">',
            'cell_start' => '<td style="border: 1px solid #dddddd;">',
            'row_alt_start' => '<tr style="background-color:#dddddd">',
            ];
            $table->setTemplate($template);

        $fields = [
            'title' => 'Travel Destinations',
            'heading' => 'Travel Destinations',
            'footer' => 'Copyright 123'
        ];

        // get a template parser
        $parser = \Config\Services::parser();
        // // tell it about the substitions
        // return $parser->setData($record)
        //     // and have it render the template with those
        //     ->render('oneplace');

        return $parser->setData($fields)
                ->render('templates\top') .
            $table->generate() .
            $parser->setData($fields)
                ->render('templates\bottom');

            
    }
    public function edit($id = NULL) { 
        $places = new \App\Models\Places();
        $record = $places->find($id);
        $fields = [
               'title' => 'Edit a Destination',
               'heading' => 'Edit a Destination',
               'footer' => 'Copyright Xavier'
           ];
           $parser = \Config\Services::parser();
           return $parser->setData($fields)
                ->render('templates\top') .
               $parser->setData($record)
                ->render('editplace') .
               $parser->setData($fields)
                ->render('templates\bottom');
   
   } 
   public function handle() { 
    $places = new \App\Models\Places();
        helper(['form', 'url']);
        $record = $places->find($this->request->getPost('id'));
        if ($this->validate($places->validationRules)) {
                     $places->save([
                    'id' => $this->request->getPost('id'),
                     'name' => $this->request->getPost('name'),
                     'description' => $this->request->getPost('description'),
                     'link' => $this->request->getPost('link'),
                     'image' => $this->request->getPost('image'),
         ]);
        }
        $fields = [
                        'title' => 'Edit a Destination',
                        'heading' => 'Edit a Destination',
                        'footer' => 'Copyright Xavier'
                    ];
                    $parser = \Config\Services::parser();

         $returnView = $parser->setData($fields)->render('templates\top');
         if (!$this->validate($places->validationRules)) {
                     $returnView .= $parser->renderString($this->validator->listErrors());
                     $returnView .= $parser->setData($this->request->getPost())
                         ->render('editplace');
                     } else {
                     $returnView .= $parser->renderString("<p>Success!</p>");
                     $returnView .= $parser->setData($this->request->getPost())
                         ->render('editplace');
                     }
                     $returnView .= $parser->setData($fields)
                         ->render('templates\bottom');
                     
                 return $returnView;
                 $routes->post('/travel/handle', 'Travel::handle');
   }
}